{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 2d. Calculate closed- and open-system regassing paths\n", "\n", "Instead of running a degassing calculation, where we decrease pressure simulating magma ascent, we can do a regassing calculation, where we increase pressure and resorb vapor into the melt." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Python set-up\n", "You need to install VolFe once on your machine, if you haven't yet. Then we need to import a few Python packages (including VolFe). " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Install VolFe on your machine. Don't remove the # from this line!\n", "# pip install VolFe # Remove the first # in this line if you have not installed VolFe on your machine before.\n", "\n", "# import python packages\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import VolFe as vf" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define the inputs\n", "\n", "For these types of calculations, we specify the melt composition at the start of the regassing path. \n", "We'll use Sari15-04-33 from Brounce et al. (2014) again assuming a temperature of 1200 °C.\n", "\n", "For closed-system regassing calculations, we need an estimate of the bulk composition of the system - either intial CO2 or wt% gas present as described in Example 2b - at the start of regassing.\n", "For this example we'll assume the initial melt contained 3 wt% CO2-eq.\n", "\n", "Finally, we also need to state the final pressure of the calculation, which we specify in the inputs using \"final_P\" in bars.\n", "\n", "So the input file looks like below:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Define the melt composition, fO2 estimate, and T as a dictionary.\n", "my_analysis = {'Sample':'Sari15-04-33',\n", " 'T_C': 1200., # Temperature in 'C\n", " 'SiO2': 47.89, # wt%\n", " 'TiO2': 0.75, # wt%\n", " 'Al2O3': 16.74, # wt%\n", " 'FeOT': 9.43, # wt%\n", " 'MnO': 0.18, # wt%\n", " 'MgO': 5.92, # wt%\n", " 'CaO': 11.58, # wt%\n", " 'Na2O': 2.14, # wt%\n", " 'K2O': 0.63, # wt%\n", " 'P2O5': 0.17, # wt%\n", " 'H2O': 4.17, # wt%\n", " 'CO2ppm': 1487., # ppm\n", " 'STppm': 1343.5, # ppm\n", " 'Xppm': 0., # ppm\n", " 'Fe3FeT': 0.177,\n", " 'initial_CO2wtpc': 3., # initial CO2 content of the system in wt%\n", " 'final_P':5000.} # bar\n", "\n", "# Turn the dictionary into a pandas dataframe, setting the index to 0.\n", "my_analysis = pd.DataFrame(my_analysis, index=[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We also need to change some model options to say its a regassing - rather than degassing - calculation.\n", "This is done by changing \"gassing_direction\" to \"regas\" (the default is \"degas\").\n", "\n", "As before (Example 2b), to use the initial CO2 in the calculation, we have to change the \"bulk_composition\" option to \"melt+vapor_initialCO2\" so it knows how to calculate the bulk composition.\n", "\n", "This gives the following models dataframe, assuming the defaults for everything else:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# choose the options I want - everything else will use the default options\n", "my_models = [['gassing_direction','regas'],['bulk_composition','melt+vapor_initialCO2']]\n", "\n", "# turn to dataframe with correct column headers and indexes \n", "my_models = vf.make_df_and_add_model_defaults(my_models)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Run the calculation\n", "\n", "### Closed-system regassing\n", "\n", "VolFe will then calculate the bulk composition of the system by calculating the melt and vapor composition at Pvsat based on the input composition, and then add that vapor composition to the melt such that the bulk composition is 3 wt% CO2.\n", "\n", "Then it will increase the pressure up to the final pressure." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "1200.0it [00:04, 289.92it/s] \n" ] } ], "source": [ "regas1 = vf.calc_gassing(my_analysis, models=my_models)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Open-system regassing\n", "\n", "We can do the same assuming open-system degassing by changing the \"gassing_direction\" and \"gassing_style\" and using the default 1 bar pressure step. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# choose the options I want - everything else will use the default options\n", "my_models = [['gassing_direction','regas'],['gassing_style','open']]\n", "\n", "# turn to dataframe with correct column headers and indexes \n", "my_models = vf.make_df_and_add_model_defaults(my_models)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "1138.0it [18:14, 1.04it/s] \n" ] } ], "source": [ "regas2 = vf.calc_gassing(my_analysis, models=my_models)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plotting \n", "\n", "And then plot the two for comparison (closed in solid, open in dash)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(5200.0, 0.0)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/YAAAF4CAYAAAD+PWLVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/GU6VOAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB3XElEQVR4nO3deXiMd/c/8Pdk3yNBEiGxL7XG3tiXyCK1V1FrH0qLlmq1dEFbLcVTrVYV9dCW0lJLRBIiGypiqVhDLSG2iC0Lss/5/dFf7q+RIIlJZsn7dV1ztbk/n7nnnJlxZs7cm0pEBERERERERERkkEx0HQARERERERERlR4beyIiIiIiIiIDxsaeiIiIiIiIyICxsSciIiIiIiIyYGzsiYiIiIiIiAwYG3siIiIiIiIiA8bGnoiIiIiIiMiAsbEnIiIiIiIiMmBs7ImIiIiIiIgMGBt7IiIiIiIiIgNWoRr7pUuXolatWrCyskL79u1x8OBBXYdERKQXWB+JiIrG+khEhqDCNPa///47pk2bhtmzZ+Pvv/9GixYt4Ofnh5SUFF2HRkSkU6yPRERFY30kIkOhEhHRdRDloX379mjbti2+//57AIBarYaHhwfeeustzJgxQ8fRERHpDusjEVHRWB+JyFCY6TqA8pCTk4MjR45g5syZyjITExP4+PggNja20Pzs7GxkZ2crf6vVaty9exeVK1eGSqUql5iJyLiICDIyMuDu7g4TE/3ZWaqk9RFgjSQi7WJ9JCIqWknqY4Vo7G/fvo38/Hy4urpqLHd1dcWZM2cKzZ83bx4+/fTT8gqPiCqQK1euoEaNGroOQ1HS+giwRhJR2WB9JCIqWnHqY4Vo7Etq5syZmDZtmvJ3WloaPD09ceXKFTg4OOgwMiIyVOnp6fDw8IC9vb2uQ3lurJFEpE2sj0RERStJfawQjX2VKlVgamqKmzdvaiy/efMm3NzcCs23tLSEpaVloeUODg4sykT0XPRtV8yS1keANZKIygbrIxFR0YpTH/XnQKYyZGFhgdatWyMiIkJZplarERERAW9vbx1GRkSkW6yPRERFY30kIkNSIbbYA8C0adMwevRotGnTBu3atcM333yDBw8e4LXXXtN1aEREOsX6SERUNNZHIjIUFaaxHzJkCG7duoVZs2YhOTkZXl5eCAsLK3RCFCKiiob1kYioaKyPRGQoKsx17J9Heno6HB0dkZaWxuOjiKhUjLmOGHNuRFT2jLmGGHNuRFT2SlJDKsQx9kRERERERETGio09ERERERERkQFjY09ERERERERkwNjYExERERERERkwNvZEREREREREBoyNPREREREREZEBY2NPREREREREZMDY2BMREREREREZMDb2RERERERERAaMjT0RERERERGRAWNjT0RERERERGTA2NgTERERERERGTA29kREREREREQGjI09ERERERERkQFjY09ERERERERkwNjYExERERERERkwNvZEREREREREBoyNPREREREREZEBY2NPREREREREZMDY2BMREREREREZMDb2RERERERERAaMjT0RERERERGRAWNjT0RERERERGTA2NgTERERERERGTA29kREREREREQGjI09ERERERERkQFjY09ERERERERkwNjYExERERERERkwNvZEREREREREBoyNPREREREREZEBY2NPREREREREZMDY2BMREREREREZMDb2RERERERERAaMjT0RERERERGRAWNjT0RERERERGTA2NgTERERERERGTA29kREREREREQGjI09ERERERERkQFjY09ERERERERkwNjYExERERERERkwNvZEREREREREBoyNPREREREREZEBY2NPREREREREZMDY2BMREREREREZMDb2RERERERERAaMjT0RERERERGRAWNjT0RERERERGTA2NgTERERERERGTCdNvZ79uxBnz594O7uDpVKha1bt2qMiwhmzZqFatWqwdraGj4+Pjh37pzGnLt372L48OFwcHBApUqVMHbsWNy/f19jzvHjx9G5c2dYWVnBw8MDCxYsKOvUiIieC+sjEdGTsUYSEWnSaWP/4MEDtGjRAkuXLi1yfMGCBViyZAl+/PFHxMXFwdbWFn5+fsjKylLmDB8+HKdOnUJ4eDiCg4OxZ88ejB8/XhlPT0+Hr68vatasiSNHjmDhwoWYM2cOVqxYUeb5ERGVFusjEdGTsUYSET1G9AQA2bJli/K3Wq0WNzc3WbhwobIsNTVVLC0tZf369SIicvr0aQEghw4dUuaEhoaKSqWSa9euiYjIDz/8IE5OTpKdna3M+eCDD6Rhw4bFji0tLU0ASFpaWmnTI6IK7nnqiD7Xx+fNjYjoeWuIPtdI1kcieh4lqSF6e4x9YmIikpOT4ePj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cHBwgLW1daF4LC0tYWlpqZXciIieh77VR4A1koj0A+sjEdH/0ekWexHB5MmTsWXLFkRGRqJ27doa461bt4a5uTkiIiKUZWfPnkVSUhK8vb0BAN7e3jhx4gRSUlKUOeHh4XBwcEDjxo2VOY+uo2BOwTqIiPQN6yMRUdFYH4mIilDWZ/J7mjfffFMcHR0lOjpabty4odwePnyozHnjjTfE09NTIiMj5fDhw+Lt7S3e3t7KeF5enjRt2lR8fX0lPj5ewsLCpGrVqjJz5kxlzsWLF8XGxkamT58uCQkJsnTpUjE1NZWwsLBixckzmhLR8yppHTGU+lia3IiIHsX6SERUtJLUEJ029gCKvK1evVqZk5mZKRMnThQnJyexsbGRAQMGyI0bNzTWc+nSJQkICBBra2upUqWKvPvuu5Kbm6sxJyoqSry8vMTCwkLq1Kmj8RjPwqJMRM+rpHXEUOpjaXIjInoU6yMRUdFKUkNUIiLlsWeAIUtPT4ejoyPS0tLg4OCg63CIyAAZcx0x5tyIqOwZcw0x5tyIqOyVpIbozVnxiYiIiIiIiKjk2NgTERERERERGTA29kREREREREQGjI09ERERERERkQFjY09ERERERERkwNjYExERERERERkwNvZEREREREREBoyNPREREREREZEBMyvJZLVajZiYGOzduxeXL1/Gw4cPUbVqVbRs2RI+Pj7w8PAoqziJiIiIiIiIqAjF2mKfmZmJuXPnwsPDA71790ZoaChSU1NhamqK8+fPY/bs2ahduzZ69+6NAwcOlHXMRERERERERPT/FWuLfYMGDeDt7Y2VK1eiV69eMDc3LzTn8uXL+O233zB06FB89NFHeP3117UeLBERERERERFpKlZjv2vXLrzwwgtPnVOzZk3MnDkT7733HpKSkrQSHBERERERERE9XbF2xS9o6vPy8vDZZ5/h6tWrT5xrbm6OunXraic6IiIiIiIiInqqEp0V38zMDAsXLkReXl5ZxUNEREREREREJVDiy9316NEDMTExZRELEREREREREZVQiS53BwABAQGYMWMGTpw4gdatW8PW1lZjvG/fvloLjoiIiIiIiIiersSN/cSJEwEAX3/9daExlUqF/Pz854+KiIiIiIiIiIqlxI29Wq0uiziIiIiIiIiIqBRKfIw9EREREREREemPEm+xB4AHDx4gJiYGSUlJyMnJ0Rh7++23tRIYERERERERET1biRv7o0ePonfv3nj48CEePHgAZ2dn3L59GzY2NnBxcWFjT0RERERERFSOSrwr/jvvvIM+ffrg3r17sLa2xoEDB3D58mW0bt0aixYtKosYiYiIiIiIiOgJStzYx8fH491334WJiQlMTU2RnZ0NDw8PLFiwAB9++GFZxEhERERERERET1Dixt7c3BwmJv/ezcXFBUlJSQAAR0dHXLlyRbvREREREREREdFTlfgY+5YtW+LQoUOoX78+unbtilmzZuH27dv49ddf0bRp07KIkYiIiIiIiIieoMRb7L/88ktUq1YNAPDFF1/AyckJb775Jm7duoUVK1ZoPUAiIiIiIiIierISb7Fv06aN8v8uLi4ICwvTakBEREREREREVHyluo49AKSkpODs2bMAgEaNGqFq1apaC4qIiIiIiIiIiqfEu+JnZGRg5MiRqF69Orp27YquXbvC3d0dI0aMQFpaWlnESERERERERERPUOLGfty4cYiLi0NwcDBSU1ORmpqK4OBgHD58GBMmTCiLGImIiIiIiIjoCUq8K35wcDB27tyJTp06Kcv8/PywcuVK+Pv7azU4IiIiIiIiInq6Em+xr1y5MhwdHQstd3R0hJOTk1aCIiIiIiIiIqLiKXFj//HHH2PatGlITk5WliUnJ2P69On45JNPtBocERERERERET1dsXbFb9myJVQqlfL3uXPn4OnpCU9PTwBAUlISLC0tcevWLR5nT0RERERERFSOitXY9+/fv4zDICIiIiIiIqLSKFZjP3v27LKOg4iIiIiIiIhKoVjH2ItIWcdBRERERERERKVQrMa+SZMm2LBhA3Jycp4679y5c3jzzTcxf/58rQRHRERERERERE9XrF3xv/vuO3zwwQeYOHEievXqhTZt2sDd3R1WVla4d+8eTp8+jX379uHUqVOYPHky3nzzzbKOm4iIiIiIiIhQzMa+Z8+eOHz4MPbt24fff/8d69atw+XLl5GZmYkqVaqgZcuWGDVqFIYPH85r2RMRERERERGVo2I19gU6deqETp06lVUsRERERERERFRCxTrGnoiIiIiIiIj0Ext7IiIiIiIiIgPGxp6IiIiIiIjIgLGxJyIiIiIiIjJgbOyJiIiIiIiIDFixG3u1Wo2vvvoKHTt2RNu2bTFjxgxkZmaWZWxERERERERE9AzFbuy/+OILfPjhh7Czs0P16tXx7bffYtKkSWUZGxERERERERE9Q7Eb+19++QU//PADdu7cia1bt2L79u1Yt24d1Gp1WcZHRERERERERE9R7MY+KSkJvXv3Vv728fGBSqXC9evXS/3gy5YtQ/PmzeHg4AAHBwd4e3sjNDRUGc/KysKkSZNQuXJl2NnZYdCgQbh582ahuAIDA2FjYwMXFxdMnz4deXl5GnOio6PRqlUrWFpaol69elizZk2pYyYiKg+sj0RERWN9JCIqrNiNfV5eHqysrDSWmZubIzc3t9QPXqNGDcyfPx9HjhzB4cOH0aNHD/Tr1w+nTp0CALzzzjvYvn07Nm7ciJiYGFy/fh0DBw5U7p+fn4/AwEDk5ORg//79+Pnnn7FmzRrMmjVLmZOYmIjAwEB0794d8fHxmDp1KsaNG4edO3eWOm4iorLG+khEVDTWRyKiIkgxqVQq6d27twwYMEC5mZmZia+vr8ay5+Xk5CQ//fSTpKamirm5uWzcuFEZS0hIEAASGxsrIiIhISFiYmIiycnJypxly5aJg4ODZGdni4jI+++/L02aNNF4jCFDhoifn98TY8jKypK0tDTlduXKFQEgaWlpz50fEVVMaWlpz11H9KE+irBGEpF2sT4SERWtJPWx2FvsR48eDRcXFzg6Oiq3ESNGwN3dXWNZaeXn52PDhg148OABvL29ceTIEeTm5sLHx0eZ06hRI3h6eiI2NhYAEBsbi2bNmsHV1VWZ4+fnh/T0dOVX29jYWI11FMwpWEdR5s2bp5GTh4dHqfMiInpe+lQfAdZIItIfrI9ERP8yK+7E1atXl0kAJ06cgLe3N7KysmBnZ4ctW7agcePGiI+Ph4WFBSpVqqQx39XVFcnJyQCA5ORkjaJcMF4w9rQ56enpyMzMhLW1daGYZs6ciWnTpil/p6enszATUbnTx/oIsEYSke6xPhIRaSp2Y19WGjZsiPj4eKSlpWHTpk0YPXo0YmJidBqTpaUlLC0tdRoDEZE+1keANZKIdI/1kYhIk84bewsLC9SrVw8A0Lp1axw6dAjffvsthgwZgpycHKSmpmr86nrz5k24ubkBANzc3HDw4EGN9RWc9fTROY+fCfXmzZtwcHB44q+tRET6gPWRiKhorI9ERJqKfYx9eVGr1cjOzkbr1q1hbm6OiIgIZezs2bNISkqCt7c3AMDb2xsnTpxASkqKMic8PBwODg5o3LixMufRdRTMKVgHEZGhYH0kIioa6yMRVXjlcDK/J5oxY4bExMRIYmKiHD9+XGbMmCEqlUp27dolIiJvvPGGeHp6SmRkpBw+fFi8vb3F29tbuX9eXp40bdpUfH19JT4+XsLCwqRq1aoyc+ZMZc7FixfFxsZGpk+fLgkJCbJ06VIxNTWVsLCwYsepjbO1ElHFVtI6Yij1sTS5ERE9ivWRiKhoJakhOm3s//Of/0jNmjXFwsJCqlatKj179lSKsohIZmamTJw4UZycnMTGxkYGDBggN27c0FjHpUuXJCAgQKytraVKlSry7rvvSm5ursacqKgo8fLyEgsLC6lTp46sXr26RHGyKBPR8yppHTGU+lia3IiIHsX6SERUtJLUEJWIiG72FTAc6enpcHR0RFpaGhwcHHQdDhEZIGOuI8acGxGVPWOuIcacGxGVvZLUEL07xp6IiIiIiIiIio+NPREREREREZEBY2NPREREREREZMDY2BMREREREREZMDb2RERERERERAaMjT0RERERERGRAWNjT0RERERERGTA2NgTERERERERGTA29kREREREREQGjI09ERERERERkQFjY09ERERERERkwNjYExERERERERkwNvZEREREREREBoyNPREREREREZEBY2NPREREREREZMDY2BMREREREREZMDb2RERERERERAaMjT0RERERERGRAWNjT0RERERERGTA2NgTERERERERGTA29kREREREREQGjI09ERERERERkQFjY09ERERERERkwNjYExERERERERkwNvZEREREREREBoyNPREREREREZEBY2NPREREREREZMDY2BMREREREREZMDb2RERERERERAaMjT0RERERERGRAWNjT0RERERERGTA2NgTERERERERGTA29kREREREREQGjI09ERERERERkQFjY09ERERERERkwNjYExERERERERkwNvZEREREREREBoyNPREREREREZEBY2NPREREREREZMDY2BMREREREREZMDb2RERERERERAaMjT0RERERERGRATPTdQDGKD8/H2PGjIGzszOmTp2K2rVr6zokIiK98dFHH8HR0RFNmzZFkyZN4OnpCZVKpeuwiIh0btWqVbh06RJsbW1hY2MDW1tb5fbo34//v6mpqa5DJyIdY2Nf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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(12,4))\n", "\n", "data1 = regas1 # closed-system\n", "data2 = regas2 # open-system\n", "\n", "# Plotting results\n", "ax1.plot(data1['CO2T-eq_ppmw'], data1['P_bar'], '-k')\n", "ax1.plot(data2['CO2T-eq_ppmw'], data2['P_bar'], ':k')\n", "ax2.plot(data1['H2OT-eq_wtpc'], data1['P_bar'], '-k')\n", "ax2.plot(data2['H2OT-eq_wtpc'], data2['P_bar'], ':k')\n", "ax3.plot(data1['ST_ppmw'], data1['P_bar'], '-k')\n", "ax3.plot(data2['ST_ppmw'], data2['P_bar'], ':k')\n", "\n", "ax1.set_ylabel('P (bar)')\n", "ax1.set_xlabel('CO2,T-eq (ppmw)')\n", "ax2.set_xlabel('H2OT-eq (wt%)')\n", "ax3.set_xlabel('ST (ppmw)')\n", "ax1.set_ylim([5200,0])\n", "ax2.set_ylim([5200,0])\n", "ax3.set_ylim([5200,0])" ] } ], "metadata": { "kernelspec": { "display_name": "volfe-dev", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.0" } }, "nbformat": 4, "nbformat_minor": 2 }